home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 41 / Amiga Format CD41 (1999-06)(Future Publishing)(GB)[!][issue 1999-07].iso / -seriously_amiga- / misc / mmulib / mmulib.readme < prev    next >
Text File  |  1999-04-19  |  12KB  |  296 lines

  1. Short:    Library to ctrl the MC68K MMUs, beta
  2. Uploader: thor@math.tu-berlin.de (Thomas Richter)
  3. Author:   thor@math.tu-berlin.de (Thomas Richter)
  4. Type:     util/libs
  5. Requires: Os 2.04, a 68020/68851, 68030, 68040 or 68060 with a working MMU
  6. Version:  0.26
  7.  
  8. -----------------------------------------------------------------------------
  9.  
  10. Release 0.26
  11. ------------
  12.  
  13.     - Fixed a bug in the exception handling, forgot to restore a6.
  14.     - Fixed the return value of RebuildTree(). It's now TRUE on
  15.       success, not DOSTRUE.
  16.     - Fixed a bug in the table builder, merged sub-tree were released
  17.       incorrectly.
  18.     - Added the WithoutMMU() LVO entry.
  19.     - Removed the AllocLineMem() LVO, this one was useless.
  20.  
  21. Release 0.25
  22. ------------
  23.  
  24.     - Debugged 060 exception handler again. Found only one bug, ROM
  25.       emulation was broken.
  26.     - Enhanced AbsExecBase accesses - does no longer block interrupts
  27.       unnecessary.
  28.     - Fixed parts of the exception handler to read the faulty instruction
  29.       from the correct function code space.
  30.     - Added a complicated test for the EC030 processor that should
  31.       finally work.
  32.     - Enabled the MMULib internal exception handler test.
  33.     - Removed all accesses to the ppc.library and reserved entries.
  34.       PPC.lib compatibility is no longer an issue for me. The MMU.lib
  35.       is WarpOs-compatible, though, as long as the system isn't 
  36.       infected by Ralph's "software".
  37.     - Added a safety test in the MMUCacheTest program to avoid
  38.       hangs.
  39.  
  40. -----------------------------------------------------------------------------
  41.  
  42. Compatibility warnings and bad software:
  43.  
  44. - The MMU tables generated by the "CPU FastROM" command, an official CBM tool,
  45. are simply wrong if run on a 030 processor. Chip memory is marked as
  46. "cacheable", which is plain wrong. Already spoke to Michael Sinz who agrees
  47. in that point. Don't use it, run "MuFastRom" instead.
  48.  
  49. - The MMU tables build by "SetCPU FastRom" are not very well suited for 
  50. MuForce. The MMU library will replace the table layout by something more
  51. adapted.
  52.  
  53. Since these programs may install a "bogus" exception vector, you shouldn't
  54. run both programs with the "FastROM" option. If you absolutely want to do, 
  55. run them *before* installing any MMU.lib related program and COP - remember, 
  56. you have been warned. "MuFastROM" will do better once the library is finished.
  57.  
  58.  
  59. - CMQ060.lha from the Aminet: This program uses the MOVE16 instruction to
  60. "speed up" the copy mem routines of the Os. Besides that the speedup is
  61. minimal, you should be informed that this instruction is not fully 
  62. supported by the Amiga hardware. A MOVE16 into the chip memory could yield
  63. to "strange and wonderful things", and may or may not work. Its burst
  64. accesses simply don't fit into the DMA access mechanism of the Amiga 
  65. custom chips. (Note that no other instruction will try burst accesses
  66. into non-cacheable memory!)
  67. Moreover, if a MOVE16 crashes, the mmu.library is out of buisiness, it will 
  68. simply guru. Do not run this program!
  69.  
  70. MOVE16 is one of the non-supported instructions in an Amiga system, others
  71. are TAS, CAS and CAS2 (which are of little use in a single processor system).
  72.  
  73. For more detailed information of MOVE16, check either the enforcer.guide or
  74. the motorola documentation, I'm not making this up, and this is not 
  75. mmu.library related.
  76.  
  77.       
  78.  
  79. Release 0.21
  80. ------------
  81.  
  82.     - Tiny adjustments of the 060 handler of the library, now tested.
  83.     - Forgot to fill in the SSP in the exception handler, this caused
  84.       MuForce crashes.
  85.     - INTRO option of MuForce was broken. I thought this is simply too
  86.       easy to make mistakes, but I was wrong. *SIGH*
  87.     - Added more options for "MuFastRom".
  88.     - Included up-to-date version of MMUCacheTest... Ooops.
  89.     - Included the MuOmniSCSIPatch, with the friendly permisson of
  90.       Ralph Babel. For details, read the guide of this program.
  91.     - Forgot to setup the dfc correctly for single page flushes.
  92.       This could have caused hangs in case of zero-page access, for
  93.       example.
  94.  
  95. This release has been successfully tested on a 030, a 040 and a 060. Should
  96. work fine for your system, too, as long as the ppc.library is not used.
  97.  
  98. Release 0.20
  99. ------------
  100.  
  101.     Just too much changed: To keep the story short:
  102.     
  103.     - Lots of bug fixes.
  104.     - Exception handlers have been written and tested.
  105.     - MuTools have been written:
  106.       MuFastROM remaps the ROM to RAM,
  107.       MuFastZero remaps the autovectors from chip to fast
  108.       without touching the VBR.
  109.       MuForce is an option compatible enforcer replacement.
  110.       MuScan prints the MMU table.
  111.  
  112.     The release 0.20 is the first "fully working modulo bugs"
  113.     version.
  114.  
  115. Known Bugs:
  116. -----------
  117.  
  118.     The MMU table manager rebuilds currently the MMU tables for a
  119.     complete memory block even if only a minor sub-block was changed.
  120.     Therefore, it may take longer to build the MMU table than absolutely
  121.     required.
  122.  
  123.     The MMU library builds currently 68030 MMU tables with the
  124.     REPAIRABLE flag set less efficient than it could.
  125.  
  126.     The library does not yet provide a mechanism to adjust the page
  127.     size, even though it is flexible enough to adapt to any page size
  128.     possible. This feature will be added in the form of tags to the
  129.     CreateContext() call.
  130.  
  131.     The library does not yet contain a workaround for a 040 firmware
  132.     bug: If an illegal, line A, chk or unimplemented floating point
  133.     instruction is located at the last 16 bits of a page and the next
  134.     page is not available, the 040 generates an access fault instead
  135.     of the proper exception. The fault address is the address of the
  136.     missing page, and the PC points to the instruction in the preceeding
  137.     page.
  138.  
  139. These bugs will be fixed within the next releases of the library, including
  140. all the other bugs you may find.
  141.     
  142. -----------------------------------------------------------------------------
  143.  
  144. Special thanks goes to:
  145.  
  146. -Ralph Babel for giving information about the CachePreDMA/CachePostDMA
  147.  functions.
  148. -Carsten Schlote for starting development of a mmu.library aware 68060.lib.
  149. -Michael Sinz (a real BIG thank you!) for discussing a lot of details of
  150.  CachePreDMA/CachePostDMA, for sending me the sources of these functions
  151.  in his 68040, and especially - and that's really great - for making the
  152.  Enforcer sources available and for allowing me to reuse the exception
  153.  handler of the Enforcer. This will happen in one of the next releases.
  154. -Bjoern Schmidt for allowing me to run some tests on his 060.
  155. -Werner Müller for his 040 based system.
  156. -All the testers for running tests and sending me detailed information about
  157.  their systems.
  158.  
  159. Thank you to all of you, this project won't clearly possible without your
  160. support!    
  161.  
  162. Special thanks does not go to:
  163.  
  164. Ehem, fill in... Guess you know.
  165.  
  166. -----------------------------------------------------------------------------
  167. Warning: This is "work in progress", it's by no means complete.
  168.  
  169. I'm in the urge need for testers and co-authors. Especially MC68060 systems
  170. are very welcome for testing.
  171.  
  172. Please check the "ReadMe" in the archive for details how to contact me.
  173. -----------------------------------------------------------------------------
  174.  
  175. Purpose and goal of this library:
  176.  
  177. The mmu.library is a planned basis for MMU (memory management) related
  178. functions the MC68K family can perform. Up to now certain hacks are available
  179. that program the MMU themselves (Enforcer,CyberGuard,GuardianAngle,SetCPU,
  180. Shapeshifter,VMM,GigaMem...). 
  181. It's therefore not unexpected that these tools conflict with each other.
  182. There's up to now no Os support for the MMU at all - the gap this mmu.library
  183. is planned to fill.
  184.  
  185. The goal is to provide a basis of functions to address and program the MMU in
  186. a hardware independent, Os friendly fashion. Hence, a future version of the
  187. Enforcer will work together with virtual memory, and others.
  188.  
  189. The mmu.library is also the basis for a virtual memory project, the 
  190. memory.library. Even though the mmu.library does not provide virtual memory
  191. itself, it builds the basics to allow an easy implementation and to avoid the
  192. hacks required by other implementations so far.
  193.  
  194. For the design details of the mmu.library, consider reading the autodocs in
  195. this archive. Everything is still VERY preliminary, there's still room for
  196. changes and suggestions.
  197.  
  198. ------------------------------------------------------------------------------
  199.  
  200. This distribution contains the full sources written so far, the documentation
  201. and some C sample sources how to use the library, as well as the includes
  202. and autodocs written so far. Check the ReadMe for details. Even if you're not
  203. a developer, you could help me a lot by running a test program on your
  204. computer and sending me the results. For details about testing - this 
  205. became a bit trickier - please consider the ReadMe.
  206.  
  207. ------------------------------------------------------------------------------
  208. The mmu.library development group:
  209.  
  210. This is a loose, non-commercial group of developers that support the 
  211. mmu.library by their work. If you want to join, please lemme know.
  212.  
  213. ------------------------------------------------------------------------------
  214.  
  215.                          The THOR-Software Licence (v2, 24th June 1998)
  216.  
  217.  
  218. This License applies to the computer programs known as the "mmu.library" 
  219. and its sources. The "Program", below, refers to such program. The
  220. "Archive" refers to the package of distribution, as prepared by the author
  221. of the Program, Thomas Richter. Each licensee is addressed as "you".
  222.  
  223.  
  224.  
  225. The Program and the data in the archive are freely distributable
  226. under the restrictions stated below, but are also Copyright (c)
  227. Thomas Richter.
  228.  
  229. Distribution of the Program, the Archive and the data in the Archive by a
  230. commercial organization without written permission from the author to any
  231. third party is prohibited if any payment is made in connection with such
  232. distribution, whether directly (as in payment for a copy of the Program) or
  233. indirectly (as in payment for some service related to the Program, or
  234. payment for some product or service that includes a copy of the Program
  235. "without charge"; these are only examples, and not an exhaustive enumeration
  236. of prohibited activities).
  237.  
  238.  
  239. However, the following methods of distribution
  240. involving payment shall not in and of themselves be a violation of this
  241. restriction:
  242.  
  243.  
  244. (i) Posting the Program on a public access information storage and
  245. retrieval service for which a fee is received for retrieving information
  246. (such as an on-line service), provided that the fee is not
  247. content-dependent (i.e., the fee would be the same for retrieving the same
  248. volume of information consisting of random data).
  249.  
  250.  
  251. (ii) Distributing the Program on a CD-ROM, provided that
  252.  
  253. a) the Archive is reproduced entirely and verbatim on such CD-ROM, including
  254. especially this licence agreement;
  255.  
  256. b) the CD-ROM is made available to the public for a nominal fee only,
  257.  
  258. c) a copy of the CD is made available to the author for free except for
  259. shipment costs, and
  260.  
  261. d) provided further that all information on such CD-ROM is redistributable
  262. for non-commercial purposes without charge.
  263.  
  264.  
  265. Redistribution of a modified version of the Archive, the Program or the
  266. contents of the Archive is prohibited in any way, by any organization,
  267. regardless whether commercial or non-commercial. Everything must be kept
  268. together, in original and unmodified form.
  269.  
  270.  
  271.  
  272.  
  273. Limitations.
  274.  
  275.  
  276. THE PROGRAM IS PROVIDED TO YOU "AS IS", WITHOUT WARRANTY. THERE IS NO
  277. WARRANTY FOR THE PROGRAM, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT
  278. LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
  279. PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. THE ENTIRE
  280. RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD
  281. THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY
  282. SERVICING, REPAIR OR CORRECTION.
  283.  
  284.  
  285. IF YOU DO NOT ACCEPT THIS LICENCE, YOU MUST DELETE THE PROGRAM, THE ARCHIVE
  286. AND ALL DATA OF THIS ARCHIVE FROM YOUR STORAGE SYSTEM. YOU ACCEPT THIS
  287. LICENCE BY USING OR REDISTRIBUTING THE PROGRAM.
  288.  
  289.  
  290.                                                         Thomas Richter
  291.  
  292. -----------------------------------------------------------------------------
  293.  
  294. So long,
  295.     Thomas            (February 1999)
  296.